var express = require('express');
var router = express.Router();
var sql = require('./../sql')
var xlsx = require('node-xlsx'); // 引入 数据导入模块
var uuid = require('node-uuid'); // 引入 以为的uuid
var List = require('./../sql/col/list'); // 引入数据库操作模块
var Pro = require('./../sql/col/pros'); // 引入数据库操作模块


/**
 * @api {get}   api/list 获取类别列表数据
 * @apiDescription 获取类别列表数据
 * @apiGroup  list
 * @apiParam { json } Success-Response:
 * {
 * code:200,
 * message:"获取类别列表数据"，
 * data:data
 * }
 * @apiSampleRequest /api/list
 * @apiVersion 0.0.0
*/

router.get('/', function(req, res, next) {
  sql.find(List, {}, { _id: 0 }).then((data) => {
    res.send({
      code: '200',
      message: '获取类别列表数据',
      data: data
    });
  })
});
// 上传文件
router.get('/upload',function(req,res,next){
  // 1. excel的绝对地址
  let fileStr = 'D:/list.xlsx'
  // 2. 得到数据后将他转为对象
  // res.send(fileStr)
  let fileData = xlsx.parse(fileStr)
  // res.send(fileData)
  // 3. 获取对应的表中数据  --- 一句excel表格中的数据排序
  let proarr = fileData[0].data
  // res.send(proarr)
  // 4. 遍历数据，组合数据
  let arr = []
  // res.send(proarr)
  proarr.map((item,index) => {
      if(index > 0 ){
          // 去除数据中的标题一栏
          let obj = {
              listid:'list_' + uuid.v1(), //产品的唯一值
              img: item[0],
              alt: item[1],
              href: ''
          }
          // 将数据放入到一个数组中
          arr.push(obj)
      }
  })
  // res.send(arr)
  // 5.插入数据库
  sql.insert(List,arr).then( () => {
    res.send('插入数据成功')
  })
})

/**
 * @api {get}   api/list/pro 获取列表的数据
 * @apiDescription 获取列表的数据，可以传提不同的参数获取数据
 * @apiGroup  list
 * @apiParam { number } limit 每页显示的个数（默认值10）
 * @apiParam { number } count 当前页码（默认0）
 * @apiParam { json } Success-Response:
 * {
 * code:200,
 * message:"获取产品成功"，
 * data:data
 * }
 * @apiSampleRequest /api/list/pro
 * @apiVersion 0.0.0
*/

router.get('/pro', function(req, res, next) {
  // 不管是get还是post 获取到的参数都是字符串，需要转换
  let limit = req.query.limit * 1 || 10
  let count = req.query.count * 1 || 0

  sql.paging(Pro, {}, { _id: 0 }, limit, count).then((data) => {
    res.send({
      code: '200',
      message: '获取产品列表数据',
      len: data.length, // 告诉用户请求了多少条数据
      data: data
    });
  })
});

/**
 * @api {get}   api/list/detail 获取商品详情的数据
 * @apiDescription 获取商品的详情
 * @apiGroup  list
 * @apiParam { string } proid 商品id
 * @apiParam { json } Success-Response:
 *{
 * code:'200',
 * message: '获取详情的数据',
 * data:data[0]
 * }
 * {
 * code: '10404', // 10404 状态码自己编辑，随便设定
 * message: '没有查询到该产品相关数据'
 * }
 * @apiSampleRequest /api/list/detail
 * @apiVersion 0.0.0
*/

router.get('/detail', function(req, res, next) {
  const { proid } = req.query
  sql.find(Pro, { proid }, { _id: 0 }).then((data) => {
    data.length > 0 ? res.send({
      code: '200',
      message: '获取详情数据',
      data: data[0]
    }) : res.send({
      code: '10404', // 10404 状态码自己编辑，随便设定
      message: '没有查询到该产品相关数据'
    })
  })
});

module.exports = router;
